Global add prefix for existing feature definition
The below code snippet shows adding the prefix for active feature definitions used in current Dgn file. Here, " Alignment\\Geom_Baseline_Driveway" feature definition is used for demo purpose.
//Required References
using Bentley.CifNET.GeometryModel.SDK;
using Bentley.CifNET.SDK.Edit;
public void AddPrefixToActiveFeatureDefinitions()
{
//Get active DGN model connection for edit purpose
Bentley.CifNET.SDK.Edit.ConsensusConnectionEdit con = ConsensusConnectionEdit.GetActive();
if (con == null) return;
//Get active geometric model
GeometricModel activeGM = con.GetActiveGeometricModel();
//Get Object space required for persisting the changes
Bentley.CifNET.CadSystem.IObjectSpaceManager objectSpaceManager = Bentley.CifNET.ServiceManager.Instance.GetService<Bentley.CifNET.CadSystem.IObjectSpaceManager>();
Bentley.CifNET.Objects.IObjectSpace objectSpace = objectSpaceManager.ObjectSpace/*.GetIsolated()*/;
//Get active feature definitions
foreach (Bentley.CifNET.GeometryModel.SDK.FeatureDefinition feature in activeGM.FeatureDefinitions)
{
//Get Object settings
Bentley.CifNET.ContentManagementModel.ObjectSettings obs = feature.DomainObject as Bentley.CifNET.ContentManagementModel.ObjectSettings;
if (obs.Name.Contains("Alignment\\Geom_Baseline_Driveway"))
{
//Change prefix name
obs.NamePrefix = "GeomDW";
//Save changes
objectSpace.PersistChanges(obs);
}
}
}